﻿Option Explicit On
Option Strict On
Imports System.Data.SqlClient

Public Class frmTipoDomicilio

    Dim objTipoDomicilio As New clsTipoDomicilio
    Dim Operacion As String = ""

    ' Cadena de conexión  
    Private Const cadenaconexion As String = "Data Source= .\SQLEXPRESS; Integrated Security=True; Initial Catalog=Ficticia"


    Private Sub frmTipoDomicilio_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'enviar el control ComboBox y la consulta  
        sub_HabilitarControles(False)
        sub_Refresh()
    End Sub

    Private Sub sub_Refresh()
        With objTipoDomicilio
            If .fn_EjecutarQuery(clsTipoDomicilio.TipoQuery.InfoTodo) Then
                Grid.DataSource = .dbDataSet.Tables("TipoDomicilio")

            Else
                MessageBox.Show(.pMsg)
            End If
        End With
    End Sub

    Private Sub sub_HabilitarControles(ByVal Valor As Boolean)
        GrpListado.Enabled = Not Valor
        GrpIndividual.Enabled = Valor

        If GrpListado.Enabled Then
            Me.Height = 220
        Else
            Me.Height = 420
        End If

    End Sub

    Private Sub btCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btCancelar.Click
        sub_HabilitarControles(False)
        btNuevo.Focus()
    End Sub

    Private Sub btEliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btEliminar.Click
        If Grid.RowCount <= 0 Then Exit Sub
        If (Grid.SelectedRows.Count = 1) Then
            Operacion = "Del"
            If MessageBox.Show("¿Esta seguro de eliminar el Tipo Domicilio con Identificador:" & (Grid.SelectedRows(0).Cells("id_Tipo").Value.ToString), "Confirmación", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
                btAceptar_Click(btAceptar, New System.EventArgs)
            End If
        Else
            MessageBox.Show("Seleccione una Fila, No una celda o columna")
            sub_HabilitarControles(False)
        End If

    End Sub


    Private Sub btAceptar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btAceptar.Click
        With objTipoDomicilio
            Select Case Operacion
                Case "Add"

                    .pNombreTipo = Trim(NombreTipo.Text)
                    .pDescripcion = Trim(Descripcion.Text)

                    If Not .fn_Existe(clsTipoDomicilio.VerifExistType.Ambos) Then
                        If .fn_Add() Then
                            sub_Refresh()
                            sub_HabilitarControles(False)
                        Else
                            MessageBox.Show(.pMsg)
                        End If
                    Else
                        MessageBox.Show("El Tipo de Domicilio ya Existe.")
                    End If




                Case "Upd"
                    .pNombreTipo = Trim(NombreTipo.Text)
                    .pDescripcion = Trim(Descripcion.Text)

                    .pid_Tipo = CInt(Trim(id_Tipo.Text))

                    If .fn_Upd() Then
                        sub_Refresh()
                        sub_HabilitarControles(False)

                    Else
                        MessageBox.Show(.pMsg)
                    End If

                Case "Del"
                    .pid_Tipo = CInt(Grid.SelectedRows(0).Cells("id_Tipo").Value)
                    If .fn_Del() Then
                        sub_Refresh()
                    Else
                        MessageBox.Show(.pMsg)

                    End If
            End Select
        End With
    End Sub

    Private Sub btNuevo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btNuevo.Click
        btAceptar.Text = "Guardar Nuevo"
        Operacion = "Add"
        sub_HabilitarControles(True)
        id_Tipo.Text = ""
        NombreTipo.Text = ""
        Descripcion.Text = ""
        id_Tipo.ReadOnly = True
        NombreTipo.Focus()

    End Sub

    Private Sub btModificar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btModificar.Click
        If Grid.RowCount <= 0 Then Exit Sub
        btAceptar.Text = "Guardar Modificación"
        Operacion = "Upd"

        With objTipoDomicilio
            ' error cuadno no hay nada seleccionado o solo una columna
            'Dim aux As String
            'aux = Grid.SelectedRows(0)
            If (Grid.SelectedRows.Count = 1) Then

                sub_HabilitarControles(True)

                .pid_Tipo = CInt(Grid.SelectedRows(0).Cells("id_Tipo").Value.ToString)

                If .fn_EjecutarQuery(clsTipoDomicilio.TipoQuery.InfoIndividual) Then
                    NombreTipo.Text = .dbDataRow("NombreTipo").ToString
                    Descripcion.Text = .dbDataRow("Descripcion").ToString
                    id_Tipo.Text = .dbDataRow("id_Tipo").ToString
                    id_Tipo.ReadOnly = True
                    NombreTipo.Focus()
                Else
                    MessageBox.Show(.pMsg)

                End If
            Else
                MessageBox.Show("Seleccione la Fila, No una celda o columna")
                sub_HabilitarControles(False)
            End If


        End With
    End Sub


End Class
